<?php
/**
 * Created by litong on Date: 2018/12/24 0024 上午 11:11
 */
abstract class AbstractClass{
  //  强制要求子类定义这些方法
  abstract protected function getValue();
  abstract protected function getPrefixVale($prefix);
  // 普通方法,非抽象方法
  public function printOut(){
    print $this->getValue().PHP_EOL;
  }
}
class ConcreteClass1 extends AbstractClass{
  protected function getValue()
  {
    return "ConcreteClass1";
  }

  public function getPrefixVale($prefix)
  {
    return "$prefix ConcreteClass1";
  }
}
$class1=new ConcreteClass1();
$class1->printOut();
echo $class1->getPrefixVale('FOO_');
?>